﻿using System.Drawing;
using System.IO;
using System;
namespace FinalTest_Algonrithm
{
    public class FinalTest_AlgorithmBase
    {
        public virtual bool LoadConfig(string path)
        {
            return true;
        }
        public virtual bool GetSFRValue(Bitmap p, ref SFRValue SFRValue, ref RectInfo rectInfo,ref LightValue light, int iStation = 0) => true;
        public virtual int GetLight(Bitmap bitmap, float[] Lightness, int iStation = 0) => 0;
        public virtual int GetOC(Bitmap bitmap, ref float OCx, ref float OCy, int iStation = 0)=>0;
        public virtual int GetFOV(Bitmap bitmap, ref float HFOV, ref float VFOV, ref float DFOV, ref Bitmap OutBitmap,int iStation = 0) => 0;
        public virtual int Getmirror(Bitmap bitmap, ref bool IsMirrored, ref Bitmap OutBitmap, int iStation = 0) => 0;
        public virtual int GetAWB(Bitmap bitmap, float[] R, float[] G, float[] B, float[] RvsG, float[] BvsG, ref Bitmap OutBitmap, int iStation = 0) => 0;
        public virtual int GetBlemish(Bitmap bitmap, ref int StainNum, int[] StainArea, ref Bitmap OutBitmap, int iStation = 0) => 0;
        public virtual int GetParity(Bitmap bitmap, ref int SmallCount, ref int MediumCount, ref int BigCount, ref Bitmap OutBitmap, int iStation = 0) => 0;
        public virtual int GetShading(Bitmap bitmap, ref float RatioUL, ref float RatioUR, ref float RatioDL, ref float RatioDR, ref float Ratio_Diff, ref Bitmap OutBitmap, int iStation = 0) => 0;
        public virtual int GetColor6(Bitmap bitmap, float[] ColorInfo, ref Bitmap OutBitmap, int iStation = 0) => 0;
        public virtual int GetColor24(Bitmap bitmap, float[] ColorInfo, ref Bitmap OutBitmap, int iStation = 0) => 0;
        public virtual int GeGray(Bitmap bitmap, float[] GrayInfo, float[] GrayDiffInfo, int[] DiffCount, ref Bitmap OutBitmap, int iStation = 0) => 0;
        public virtual int GeHotpixel(Bitmap bitmap, ref int SingleCount, ref int DoubleCount, ref int MultipleCount, ref Bitmap OutBitmap, int iStation = 0) => 0;
        public virtual int GeFlare(Bitmap bitmap, ref float ResultValue, ref Bitmap OutBitmap, int iStation = 0) => 0;
        public virtual int GeSNR(Bitmap bitmap, ref float ResultValue, ref Bitmap OutBitmap, int iStation = 0) => 0;
        public virtual int GeIRLED(Bitmap bitmap, ref float MeanValue, ref Bitmap OutBitmap, int iStation = 0) => 0;

    }
}
